/**
 * 
 */
package dms.repository;

import java.util.Date;
import java.util.List;

import dms.model.Building;
import dms.model.Campus;
import dms.model.form.Bulletin;
import dms.model.util.PageIterator;

/**
 * @author 李健
 *
 */
public interface BulletinRepository {
	
	Bulletin findById(Long id);
	/**
	 * 
	 * @param start
	 * @param count
	 * @param fromDate
	 * @param toDate
	 * @param query null或空串表示不需要，其他表示按照标题，或内容里的内容来查找
	 * @return
	 */
	PageIterator<Bulletin> findAll(int start, int count, Date fromDate, Date toDate, String query);
	
	/**
	 * 
	 * @param start
	 * @param count
	 * @param fromDate
	 * @param toDate
	 * @param campus
	 * @param query null或空串表示不需要，其他表示按照标题，或内容里的内容来查找
	 * @return
	 */
	PageIterator<Bulletin> findByCampus(int start, int count, Date fromDate, Date toDate, Campus campus, String query);
	
	/**
	 * 
	 * @param start
	 * @param count
	 * @param fromDate
	 * @param toDate
	 * @param building
	 * @param query null或空串表示不需要，其他表示按照标题，或内容里的内容来查找
	 * @return
	 */
	PageIterator<Bulletin> findByBuilding(int start, int count, Date fromDate, Date toDate, Building building, String query);
	
	Bulletin createBulletin(Bulletin bulletin) throws Exception;
	
	Bulletin updateBulletin(Bulletin bulletin) throws Exception;
	
	void deleteBulletinById(Long id) throws Exception;
	
	void deleteBulletins(List<Long> ids) throws Exception;
	
	void deleteBulletins(Long[] ids) throws Exception;
}
